The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
Current and future networking technologies continue to facilitate ease of information transfer and convenience to users by expanding the capabilities of electronic devices and by improving network performance. One advance that has improved the capabilities of electronic devices to provide services and processing to users is the use of parallel computing. Parallel computing involves either the user of multiple processors or multi-core processors in a single device or multiple processors distributed over different devices to perform computing operations such as calculations, computations or other processing efforts using the parallel resources of the processors involved. Thus, for example, some threads may be processed on one processor or core, while other threads may be simultaneously processed on another processor or core.
Significant increases in speed and processing capabilities may be added to devices or systems that employ parallel computing. Indeed multi-processor and/or multi-core processing paradigms are becoming more common. However, multi-processor and/or multi-core processing may end up being relatively heavy and power hungry in some implementations. Particularly in devices where power and processing capabilities are not unlimited (e.g., mobile devices or other battery operated platforms), it may become important to balance the consumption of resources against achievable performance characteristics unless other factors that improve efficiency can be developed.